---
Order: 4000
Title: Branching Strategies
Description: Information about the different branching strategies supported by GitVersion
RedirectFrom:
- docs/git-branching-strategies/overview
- docs/git-branching-strategies
- docs/examples
---

<img src="/docs/img/CommitGraph.png" alt="Commit graph">

<p>
    At each commit sha GitVersion will calculate:
</p>

<pre><code class="language-shell">e137e9 -> 1.0.0+0
a5f6c5 -> 1.0.1+1
adb29a -> 1.0.1-feature-foo.1+1 (PR #5 Version: `1.0.1-PullRequest.5+2`)
7c2430 -> 1.0.1-feature-foo.1+2 (PR #5 Version: `1.0.1-PullRequest.5+3`)
5f413b -> 1.0.1+4
d6155b -> 2.0.0-rc.1+0 (Before and after tag)
d53ab6 -> 2.0.0-rc.2+1 (Pre-release number was bumped because of the tag on previous commit)
b5d142 -> 2.0.0+0 (2.0.0 branch was merged, so main is now at 2.0.0)
</code></pre>

<p>
    This is just a small sample of the way GitVersion works. The idea is you
    just plug it in and you will get sensible version numbers by default. We
    support the following branch types out of the box:
</p>

<ul>
    <li><code>main</code></li>
    <li><code>develop</code></li>
    <li><code>hotfix/</code></li>
    <li><code>feature/</code></li>
    <li><code>support/</code></li>
    <li><code>release/</code></li>
    <li>pull requests (stash, github and a few others)</li>
</ul>

<p>
    If you have other branch types GitVersion is entirely configuration driven,
    so check out the <a href="/docs/reference/configuration">configuration</a>
    section to make GitVersion work for you.
</p>

@Html.Partial("_ChildPages")
